export function dataToArray(vars) {
    if (Array.isArray(vars)) {
        return vars;
    }
    return [vars];
}
const transitionEndObject = {
    transition: 'transitionend',
    WebkitTransition: 'webkitTransitionEnd',
    MozTransition: 'transitionend',
    OTransition: 'oTransitionEnd otransitionend'
};
export const transitionStr = Object.keys(transitionEndObject).filter(key => {
    if (typeof document === 'undefined') {
        return false;
    }
    const html = document.getElementsByTagName('html')[0];
    return key in (html ? html.style : {});
})[0];
export const transitionEnd = transitionEndObject[transitionStr];

export function addEventListener(target, eventType, callback, options) {
    if (target.addEventListener) {
        target.addEventListener(eventType, callback, options);
    } else if (target.attachEvent) {
        target.attachEvent(`on${eventType}`, callback);
    }
}

export function removeEventListener(target, eventType, callback, options) {
    if (target.removeEventListener) {
        target.removeEventListener(eventType, callback, options);
    } else if (target.attachEvent) {
        target.detachEvent(`on${eventType}`, callback);
    }
}

export function transformArguments(arg, cb) {
    let result;
    if (typeof arg === 'function') {
        result = arg(cb);
    } else {
        result = arg;
    }
    if (Array.isArray(result)) {
        if (result.length === 2) {
            return result;
        }
        return [result[0], result[1]];
    }
    return [result];
}

export const isNumeric = value => {
    return !isNaN(parseFloat(value)) && isFinite(value); // eslint-disable-line
};
